package com.customview.wzq.zrwidgetdemo;

import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.database.ContentObserver;
import android.os.Handler;
import android.os.IBinder;
import android.provider.MediaStore;
import android.support.annotation.Nullable;

/**
 * 创建时间：2017/7/5
 * 作者：kb_jay
 * 功能描述：
 */

public class MediaService extends Service{


    private ContentObserver mMediaStoreObserver;

    @Override
    public void onCreate() {
        super.onCreate();
        //获得，所有利用AppWidgetProvider作为广播接收器的那些widget的id
//这样当有数据发生变化时，这种变化会反映到所有桌面上的widget的ListView列表中
        mMediaStoreObserver = new ContentObserver(new Handler()){
            @Override
            public void onChange(boolean selfChange) {
                Context _context=MediaService.this;
                AppWidgetManager manager=AppWidgetManager.getInstance(_context);
                ComponentName provider=new ComponentName(_context, ZrWidget.class);
                //获得，所有利用AppWidgetProvider作为广播接收器的那些widget的id
                int[] ids=manager.getAppWidgetIds(provider);
                //这样当有数据发生变化时，这种变化会反映到所有桌面上的widget的ListView列表中
                manager.notifyAppWidgetViewDataChanged(ids, R.id.list);
            }
        };

        getContentResolver().registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                true, mMediaStoreObserver);
        getContentResolver().registerContentObserver(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                true, mMediaStoreObserver);
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        getContentResolver().unregisterContentObserver(mMediaStoreObserver);
    }
}
